Computer users expect low latency, high-quality monitor display and printer output, particularly in the area of text fonts. Moreover, since the advent of modern desktop publishing applications operating on personal computers, individuals have been publishing documents in a wide range of fonts.
Storing fonts in computers and laser printers, however, consumes available memory, which results in a trade off between computer memory and the number of available fonts. This trade-off, however, can be mitigated by developments in reducing the storage size of text fonts while maintaining the high-quality output computer users have come to expect.
When an analog version of a letterform is converted to digital form for output on a raster device, for example, there can be a significant loss of important detail due to quantization. For example, storing the digital version in its raster or bitmap form for direct output on a raster device restricts output sizes unless many resolutions are made available, thereby increasing digital data storage requirements.
Several systems (AGFA® Intellifont®, Adobe® Type1™, Apple®/Microsoft® TrueType®) have been developed to deal with this problem by capturing digital letterforms as “scalable outlines” to promote size and resolution independence and by providing “scaling hints” to reduce the negative effects of low resolution rasterization.
The capability of these systems to deliver quality output has led to increased demand by computer/software users for a wider range of typeface designs. As more typefaces have become available, there has been increased interest in methods of font data compression. Systems developed to address this problem fall into two basic categories: font compression by synthesis and font compression by factoring.
Compression by Font Synthesis:
The FontChameleon® font compression technology incorporates one or more “master fonts” and more than 200 typeface design descriptors that reshape the master font to simulate popular typeface designs. Each master font comprises outlines containing, as control points, all required features to define any of the typeface design style variations supported by the master. Scaling hints are algorithmically generated. The actual typeface does not exist until it is synthesized, thereby reducing data storage requirements.
The Infinifont® font compression technology software modules generate basic letterforms which, when fed Panose® typeface classification system descriptors, produces simulations of a variety of popular typeface designs. Again, scaling hints are algorithmically generated as a post process. As with the FontChameleon® font compression technology software modules, the actual typeface does not exist until it is synthesized, thereby reducing data storage requirements.
Compression by Font Factoring:
Careful scrutiny of the data describing a large collection of typefaces reveals a significant amount of redundant information. Removing this redundant information is used to create a more compact, concise data format. This innovative process is called compression by factoring because it is based on the mathematical notion of “factoring” any information that is used repeatedly, storing it once, and sharing it when needed.
Factoring is accomplished at multiple levels by extracting information that is common across varying “cross-sections”, or planes, of the total data set. For instance:    1) At the Font Collection Level, information, such as tables that are necessary for each typeface, are stored once, eliminating redundancies, and shared by many of the typefaces (i.e., fonts) in the font collection.    2) At the Typeface Style Level, letterforms have identical topology, and because the scaling hints capture this topology, the same hints are captured in a structure (Model of Associations between Letterform Features) which is applied to each typeface in a given typeface style.    3) At the Typeface Level, common design feature measurements, which are used repeatedly within many characters within that typeface, are extracted, stored once and shared with many characters—examples being y-line heights, stem width, serif lengths, etc.    4) At the individual Character Level, much of the topological information defined in the outline is repeated in the topological information required to capture the scaling hints. By using the topology of the scaling hints to generate the outline, redundant information is eliminated.    5) At the Data Unit Level, within the definition of common typeface measurements (Global Dimensions of Associations), as well as within the definition of measurements specific to a single character (Local Dimensions of Associations), dimension values are mathematically factored to be represented by (i) a common scale factor, which is stored once per typeface, and (ii) a dimension value, whose range is thereby significantly reduced, requiring fewer bits for definition.    6) At the Contour Definition Level, within the definition of contour features specific to a single character (Contour Segment Descriptors), curve control values are ordered and normalized relative to adjacent character features. This reduces the range of their values and likewise reduces data storage requirements.
The basis for compression by font factoring is unique. Where other systems for font compression concentrate on methods to compress the letterform outlines as the primary issue, dealing with the scaling hints as a secondary issue, font factoring deals with the letterform and hints as being two inseparable and indistinguishable components of the letterform essence. In fact, the unique approach to font factoring is that the hints, with all their attributes, are used to give form to the otherwise shapeless letterform outline.
Font compression by factoring has experienced dramatic improvements from skeletal node data factoring on levels 1–5 listed above. However, font compression resulting from outline contour data reduction on the contour definition level (level 6) has not experienced the same level of improvement.
To understand font factoring at the contour definition level, it is important to know some definitions. The outline of the letterforms in outline fonts consists of one or more closed loops called contours. The contours in turn consist of a connected sequence of lines and curves. Lines, that is straight lines, are simple geometric objects that can be easily described in mathematical terms. However, curves, especially long curves, can be rather complex geometric objects that require further subdivision to be tractable in mathematical terms. This is why the curves of a contour are represented by a sequential list of basic pieces of a curve called curve elements. Individual curve elements are easily described by well-known mathematical constructs called Bezier curves. The curve elements and the straight line constitute the contour elements that make up the contours of the outline.
The three general categories of contour elements are the following:                1) Line—A straight line fully defined by its start and end points.        2) Quad—A single quadratic Bezier arc defined by one control point (off the outline) between its start and end points (on the outline).        3) DblQ—A double quadratic are defined by two control points between its start and end points. The connection point of the two quadratic Bezier arcs is the midpoint of the control points.        
Each line and curve travels between two points, known as skeletal nodes. A full set of skeletal nodes composes a letterform skeleton, which, when interconnected by appropriate lines and curves, establishes a completed letterform outline. Data representing lines, curves, and skeletal nodes have certain redundant information on many levels, as described above. It is the data representing the lines and curves that are subject to compression on the contour definition level.